package com.zcc.blog.service;

import com.zcc.blog.entity.Category;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zcc.blog.untils.Result;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zcc
 * @since 2022-09-11
 */
public interface CategoryService extends IService<Category> {

    /**
     * 分页查询所有的分类
     * @param currentPage
     * @param size
     * @param id
     * @param status 1表示在回收箱中的分类
     * @return
     */
    public Result findCategories(Integer currentPage, Integer size, Long id, Integer status);

    /**
     * 查找所有的分类
     * @param id
     * @param status
     * @return
     */
    public Result getAllCategories(Long id, Integer status);

    /**
     * 通过分类id分页查找博客
     * @param currentPage
     * @param size
     * @param id
     * @return
     */
    public Result getBlogsByCategoryId(Integer currentPage, Integer size, Long id);

    /**
     * 搜索分类
     * @param name
     * @param currentPage
     * @param size
     * @param id
     * @param status
     * @return
     */
    public Result searchCategories(String name, Integer currentPage, Integer size, Long id, Integer status);

    /**
     * 新增分类
     * @param category
     * @return
     */
    public Result addCategory(Category category);

    /**
     * 删除分类
     * @param id
     * @return
     */
    public Result deleteCategory(Long id);

    /**
     * 恢复分类
     * @param id
     * @return
     */
    public Result recoverCategory(Long id);

    /**
     * 修改分类
     * @param category
     * @return
     */
    public Result updateCategory(Category category);

    /**
     * 统计用户的分类数量
     * @param id
     * @return
     */
    public Result countCategories(Long id);

}
